package com.alibaba.middleware.hsf.guide.loadbalance;

import com.taobao.hsf.annotation.Name;
import com.taobao.hsf.annotation.Scope;
import com.taobao.hsf.cluster.LoadBalancer;
import com.taobao.hsf.invocation.Invocation;
import com.taobao.hsf.protocol.ServiceURL;

import java.util.List;

/**
 * @author weipeng2k 2018年05月10日 下午15:37:32
 */
@Name("target")
@Scope(Scope.Option.PROTOTYPE)
public class TargetLoadBalance implements LoadBalancer {

    @Override
    public ServiceURL select(List<ServiceURL> addresses, Invocation invocation) {
        for (ServiceURL serviceURL : addresses) {
            if (serviceURL.getHost().startsWith("172")) {
                return serviceURL;
            }
        }

        return null;
    }

    @Override
    public boolean accept(Invocation invocation) {
        return true;
    }
}
